// 防抖：延迟执行
// 场景示例：输入框输入后的联想或查找（输入过程中不触发，输入完成后才触发）
//（多次操作变为一次）
export const debounce= (fn:any, delay:any) => {
    let timer: any;
    timer = null;
    return function () {
        // 如果当前有待执行任务，清除待执行任务
        if (timer) {
            clearTimeout(timer);
        }
        // 延迟delay毫秒后执行任务
        timer = setTimeout(() => {
            // @ts-ignore
            fn.apply(this, arguments);
        }, delay);
    }
}
